Tennis playing robotic device

ABSTRACT

Provided is a system for robotic collaboration. A first robotic device includes a tangible, non-transitory, machine readable medium storing instructions that when executed by a processor of the first robotic device effectuates first operations including: receiving first information from a processor of a second robotic device; actuating the first robotic device to execute a first action based on the first information; and transmitting second information to the processor of the second robotic device. The second robotic device includes a tangible, non-transitory, machine readable medium storing instructions that when executed by the processor of the second robotic device effectuates second operations including: receiving the second information transmitted from the processor of the first robotic device; actuating the second robotic device to execute a second action based on the second information; and transmitting third information to the processor of the first robotic device.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a Continuation of U.S. Non-Provisional Patent Application Ser. No. 16/247,630, filed Jan. 15, 2019, which claims the benefit of U.S. Provisional Patent Application No. 62/618,157, filed Jan. 17, 2018, each of which is hereby incorporated by reference.

In this patent, certain U.S. patents, U.S. patent applications, or other materials (e.g. articles) have been incorporated by reference. Specifically, U.S. application Ser. Nos. 15/272,752, 15/949,708, 16/048,179, 16/048,185, 16/163,541, 16/163,562, 16/163,508, 16/185,000, 62/681,965, 16/109,617, 16/051,328, 15/449,660, 16/041,286, 15/406,890, 14/673,633, 62/746,688, 62/740,573, 62/740,580, 15/955,480, 15/425,130, 15/955,344, 15/048,827, 16/198,393, 15/981,643, 15/986,670, 62/664,389, 15/447,450, 15/447,623, 62/665,942, 62/617,589, 62/620,352, 15/951,096, 16/130,880, 14/859,748, and 16/230,805 are hereby incorporated by reference. The text of such U.S. Patents, U.S. patent applications, and other materials is, however, only incorporated by reference to the extent that no conflict exists between such material and the statements and drawings set forth herein. In the event of such conflict, the text of the present document governs, and terms in this document should not be given a narrower reading in virtue of the way in which those terms are used in other materials incorporated by reference.

FIELD OF THE DISCLOSURE

This disclosure relates to mobile robotic devices and specifically to mobile robotic devices that teach and play tennis.

BACKGROUND

Mobile robotic devices are becoming increasingly prevalent in home and work environments. For example, mobile robotic devices have been integrated within consumer homes to automate cleaning of the consumer homes. In other instances, mobile robotic devices have been integrated within manufacturing warehouses to automate at least a portion of a manufacturing process of a device. In several cases, mobile robotic devices are beneficial for the convenience they provide in automating one or more tasks that otherwise would require human intervention. An example includes sports training, wherein a person often requires at least one opponent to train in a particular sport. In such instances, a mobile robotic device capable of playing sports can eliminate the need for the at least one opponent.

SUMMARY

The following presents a simplified summary of some embodiments of the techniques described herein in order to provide a basic understanding of the invention. This summary is not an extensive overview of the invention. It is not intended to identify key/critical elements of the invention or to delineate the scope of the invention. Its sole purpose is to present some embodiments of the invention in a simplified form as a prelude to the more detailed description that is presented below.

Some aspects provide a system for robotic collaboration, including: a first robotic device, including: a chassis; a set of wheels; one or more motors to drive the wheels; a plurality of sensors; and a tangible, non-transitory, machine readable medium storing instructions that when executed by a processor of the first robotic device effectuates first operations including: receiving, with the processor of the first robotic device, first information from a processor of a second robotic device; actuating, with the processor of the first robotic device, the first robotic device to execute a first action based on the first information; and transmitting, with the processor of the first robotic device, second information to the processor of the second robotic device; and the second robotic device, including: a chassis; a set of wheels; one or more motors to drive the wheels; a plurality of sensors; and a tangible, non-transitory, machine readable medium storing instructions that when executed by the processor of the second robotic device effectuates second operations including: receiving, with the processor of the second robotic device, the second information transmitted from the processor of the first robotic device; actuating, with the processor of the second robotic device, the second robotic device to execute a second action based on the second information; and transmitting, with the processor of the first robotic device, third information to the processor of the first robotic device.

Some aspects provide a method for robotic collaboration, including: receiving, with a processor of a first robotic device, first information from a processor of a second robotic device; actuating, with the processor of the first robotic device, the first robotic device to execute a first action based on the first information; transmitting, with the processor of the first robotic device, second information to the processor of the second robotic device; receiving, with the processor of the second robotic device, the second information transmitted from the processor of the first robotic device; actuating, with the processor of the second robotic device, the second robotic device to execute a second action based on the second information; and transmitting, with the processor of the first robotic device, third information to the processor of the first robotic device.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates an example of a tennis playing robot according to some embodiments.

FIG. 2 illustrates an example of a tennis playing robot according to some embodiments.

FIG. 3 illustrates an example of a tennis playing robotic device and an application of a communication device paired with the robotic device according to some embodiments by which the techniques described herein may be implemented.

DETAILED DESCRIPTION OF SOME EMBODIMENTS

The present inventions will now be described in detail with reference to a few embodiments thereof as illustrated in the accompanying drawings. In the following description, numerous specific details are set forth in order to provide a thorough understanding of the present inventions. It will be apparent, however, to one skilled in the art, that the present invention may be practiced without some or all of these specific details. In other instances, well known process steps and/or structures have not been described in detail in order to not unnecessarily obscure the present invention. Further, it should be emphasized that several inventive techniques are described, and embodiments are not limited to systems implanting all of those techniques, as various cost and engineering trade-offs may warrant systems that only afford a subset of the benefits described herein or that will be apparent to one of ordinary skill in the art.

Some embodiments provide a tennis playing robotic device. In some embodiments, the robotic device includes, but is not limited to include, a set of wheels, a power source, a chassis, a suspension system, a rechargeable battery, an actuator, a control module, and a processor. Examples of wheels of a robotic device are described in U.S. Patent Application No. 62/664,389, 15/447,450, 15/447,623, and 62/665,942, the entire contents of which are hereby incorporated by reference. Examples of a suspension system are described in U.S. Patent Application Nos. 62/617,589, 62/620,352, and 15/951,096, the entire contents of which are hereby incorporated by reference. In some embodiments, the robotic device further includes one or more arms and one or more detachable tennis rackets, each coupled to one of the one or more arms. In some embodiments, the robotic device further includes one or more tennis ball launchers. In some embodiments, the robotic device further includes a user interface for, for example, adjusting settings, choosing functions, scheduling tasks. In some embodiments, the robotic device further includes a mapping module for mapping the environment using mapping methods such as those described in U.S. patent application Ser. Nos. 16/048,179, 16/048,185, 16/163,541, 16/163,562, 16/163,508, 16/185,000, and 62/681,965, the entire contents of which are hereby incorporated by reference. In some embodiments, the robotic device further includes a localization module for localizing the robotic device using localization methods such as those described in U.S. Patent Application Nos. 62/746,688, 62/740,573, 62/740,580, 15/955,480, 15/425,130, and 15/955,344 the entire contents of which are hereby incorporated by reference. In some embodiments, the robotic device further includes a path planning module to determine optimal movement paths of the robotic device based on the tasks of the robotic device using path planning methods such as those described in U.S. patent application Ser. Nos. 16/041,286, 15/406,890, and 14/673,633, the entire contents of which are hereby incorporated by reference. In some embodiments, the robotic device includes a scheduling module for setting a schedule of the robotic device using scheduling methods such as those described in U.S. patent application Ser. Nos. 16/051,328 and 15/449,660, the entire contents of which are hereby incorporated by reference. In some embodiments, the robotic device includes sensors such as cameras, LIDAR sensors, LADAR sensors, stereo imaging sensors, optical sensors, imaging sensors, distance sensors, acoustic sensors, motion sensors, obstacle sensors, cliff sensors, floor sensors, debris sensors, time-of-flight sensors, depth sensors, signal transmitters and receivers, signal strength sensor, gyroscope, optical encoders, optical flow sensors, GPS, and other types of sensors. In some embodiments, the robotic device includes a wireless module to wirelessly send and receive information, such as a Wi-Fi module or a Bluetooth module. In some embodiments, the robotic device includes an acoustic sensor to receive verbal commands.

In one embodiment, a camera, installed on a robotic device, for example, perceives depths from the camera to objects within a first field of view. In some embodiments, the robotic device together with the mounted camera rotates to observe a second field of view partly overlapping the first field of view. The camera is used to perceive depths from the camera to objects within the second field of view. In some embodiments, the depths from the first field of view are compared with the depths from the second field of view. An area of overlap between the two fields of view is identified (e.g., determined). Once an area of overlap is identified (e.g., as a bounding box of pixel positions or threshold angle of a vertical plane at which overlap starts in each field of view), a larger field of view is constructed by combining the two fields of view using the perceived depths within the area of overlap as the attachment points. Combining may include transforming vectors with different origins into a shared coordinate system with a shared origin, e.g., based on an amount of translation or rotation of a depth sensing device between frames, for instance, by adding a translation or rotation vector to depth vectors. The transformation may be performed before, during, or after combining. The method of using the camera to perceive depths within consecutively overlapping fields of view and the processor to identify the area of overlap and combine perceived depths at identified areas of overlap is repeated, e.g., until all areas of the environment are discovered and a map is constructed. In some embodiments, robotic devices collaborate to create a map of the environment, wherein processors of robotic devices share sensor readings with each other that are used to generate a map as described above. This allows a processor of a robotic device to have knowledge of areas in the environment that have not been necessarily observed by sensors of the robotic device butt may have been observed by sensors of other robotic devices. In some embodiments, the processor of the robotic device may be trained using deep learning to distinguish between features such as, climbable bump, unclimbable bump, wall, and furniture within the working environment.

In some embodiments, the processor of the robotic device provides a unique tag to each subarea of the map and uses the unique tag to order the subareas for, for example, choose different work functions for different subareas, add restrictions to subareas, set schedules for different subareas, and the like. In some embodiments, the processor uses reinforcement learning to determine the best division of the environment. In some embodiments, the subareas may be merged to create larger areas. This may depend on the size of the subarea or other factors such as surface types and other environmental parameters. For example, two small subareas that have different surface types may not be merged together. It is also possible that user feedback is used to combine smaller subareas into larger ones or to split larger subareas into smaller ones. Each subarea may be treated independently, such that the robotic device may be programmed to operate and execute tasks within a particular subarea. In some embodiments, the subareas may each be assigned a unique tag, such as a number or any type of label. The tag assigned to each subarea may be used in setting and controlling the operation and execution of tasks within each subarea, where for example, tasks may be programmed for subareas with specified tags or tags may be used to schedule tasks for different subareas at particular times. In some embodiments, the unique tags assigned to subareas are used in setting the order of each subarea. The order of subareas can be changed depending on the task or desired outcome. One or more processors of the robotic device may use an algorithm, such as Markov Decision Process (MDP), to monitor and optimize actions of the robotic device given a desired outcome.

In some embodiments, the one or more robotic arms include two or more links pivotally coupled to one another. In some embodiments, the one or more robotic arms have similar range of motion as a shoulder and an elbow of an average person. In some embodiments, a first link of each of the one or more arms is pivotally coupled to the chassis on a first end and has similar range of motion as a shoulder of an average person, a first end of a second link is pivotally coupled to a second end of the first link and has similar range of motion as an elbow of an average person, and a third link is pivotally coupled to a second end of the second link and has similar range of motion as a write of an average person. For example, the first link of each of the one or more arms pivotally coupled to the chassis has a 150 degree lateral range of motion (i.e., arm lifting to the side of the chassis, like a flapping motion) relative to a position of the arm when against a side of the chassis (e.g., like an arm of a human hanging loosely at the side of a body); 190 degree flexion range of motion (i.e., arm lifting in front of the chassis) relative to a position of the arm when against a side of the chassis; 60 degree extension range of motion (i.e., arm lifting behind the chassis) relative to a position of the arm when against a side of the chassis; and a 90 degree lateral and medial rotation range of motion (i.e., the first link rotating behind and in front of the chassis when the first link is lifted to the side of the chassis at 90 degrees) relative to a position of the arm when the first link is lifted to the side of the chassis at 90 degrees.

In some embodiments, each of the one or more detachable tennis rackets is coupled to the third link of one of the one or more arms. In some embodiments, the one or more arms include only the first and second links described above and each of the one or more detachable tennis rackets is coupled to the second link of one of the one or more arms. In some embodiments, a tennis ball hitting speed and direction of each of the one or more tennis rackets is adjustable. In some embodiments, the processor of the robotic device autonomously adjusts the tennis ball hitting speed and direction of each of the one or more tennis rackets based on the success of the opponent in returning the balls within an area of the court. In some embodiments, the processor of the robotic device autonomously adjusts the tennis ball hitting speed and direction of each of the one or more tennis rackets based on preprogrammed routines. For example, different preprogrammed routines target specific techniques or provide different difficulty level. In some embodiments, the tennis ball hitting speed is adjusted and the direction is fixed or vice versa. In some embodiments, both the tennis ball hitting speed and direction are adjusted. In some embodiments, particular tennis racket settings, such as tennis ball hitting speed and direction, are chosen using an interface of the robotic device or an application of a communication device coupled with the robotic device.

In some embodiments, one or more processors of the robotic device actuate movement of the one or more arms based on a position of the tennis ball, a position of an opponent and a target location on an opposing end of a tennis court. In some embodiments, the target location on the opposing end of the tennis court depends on a difficulty level setting of the tennis playing robotic device. In some embodiments, the speed of movement of the one or more arms depends on the difficulty level setting of the tennis playing robotic device. In some embodiments, the one or more processors actuate movement of the tennis playing robotic device based on the position of the tennis ball. In some embodiments, the tennis playing robotic device is configured to hit the tennis ball with the one or more tennis rackets at a predetermined success rate. In some embodiments, the success rate is the percentage of tennis balls that successfully hit an area within the opposing side of the tennis court that is inbounds (the inbounds area changes depending on if the game is a singles or doubles match). In some embodiments, the predetermined success rate depends on the difficulty level setting of the tennis playing robotic device.

In some embodiments, each of the one or more tennis ball launchers are coupled to one of the one or more arms. In some embodiments, the one or more tennis ball launchers are coupled to the robotic device chassis. In some embodiments, the one or more tennis ball launchers are detachable from the robotic device. In some embodiments, a tennis ball launching speed and direction of each of the one or more tennis ball launchers is adjustable. In some embodiments, the processor of the robotic device autonomously adjusts the tennis ball launching speed and direction of each of the one or more tennis ball launchers based on the success of the opponent in returning the balls within an area of the court. In some embodiments, the processor of the robotic device autonomously adjusts the tennis ball launching speed and direction of each of the one or more tennis ball launchers based on preprogrammed routines. For example, different preprogrammed routines target specific techniques or provide different difficulty level. In some embodiments, the tennis ball launching speed is adjusted and the tennis ball direction is fixed or vice versa. In some embodiments, both the tennis ball launching speed and direction are adjusted. In some embodiments, particular tennis ball launcher settings, such as tennis ball launching speed and direction, are chosen using an interface of the robotic device or an application of a communication device coupled with the robotic device.

In some embodiments, a first arm of the one or more arms of the robotic device holds and throws a tennis ball and second arm of the one or more arms includes a tennis racket. In some embodiments, the robotic device serves. In some embodiments, different attachments (e.g., tennis racket, tennis ball, tennis ball launcher, etc.) can be coupled and de-coupled from at least one of the one or more arms depending on the desired function of the robotic device.

In some embodiments, one or more sensors of the robotic device, such as imaging sensors or motion sensors, are used to detect a position of a tennis ball, lines on a tennis court, and an opponent during play. In some embodiments, one or more motors control the speed and movement of the one or more arms and subsequently the tennis ball hitting speed and direction. In some embodiments, the processor of the robotic device actuates the robotic device to adjust the speed and movement of the one or more arms by adjusting the speed of the one or more motors. In some embodiments, one or more motors control the speed and direction of the one or more tennis ball launchers. In some embodiments, the processor of the robotic device actuates the robotic device to adjust the speed and direction of the one or more tennis ball launchers by adjusting the speed of the one or more motors.

In some embodiments, an interface of the robotic device, an application (e.g., software, mobile application, web application, etc.) of a communication device (e.g., smart phone, tablet, desktop, specialized computer, etc.) or another device paired with the robotic device is used to adjust settings, functions, and a schedule of the robotic device. An example of a pairing method of an application of a communication device and a robotic device is described in U.S. patent application Ser. No. 16/109,617, the entire contents of which is hereby incorporated by reference. Settings can include, for example, a particular or maximum tennis ball hitting speed, a tennis ball hitting direction, a particular or maximum tennis ball launching speed, a tennis ball launching direction, a difficulty level, a preprogrammed routine, a position of the robotic device (e.g., net or back court), a maximum travel speed of the robotic device, etc. Functions can include, for example, play singles tennis game, play doubles tennis game, singles rally, doubles rally, or launch tennis balls. A schedule can include, for example, one or more particular functions at a particular time and location for a particular user.

An example of a graphical user interface of an application of a communication device that can be used to adjust settings, user preferences, and functions of a robotic device is described in U.S. patent application Ser. Nos. 15/272,752 and 15/949,708, the entire contents of which are hereby incorporated by reference. For instance, in some embodiments, a map is sent to a user interface on a device such as a smartphone, computer, tablet, dedicated remote control, or any device that may display outputs from the robotic device and receive inputs from a user. Through the user interface, a user may make changes to the map boundaries and select settings for the robotic device to carry out in user-identified areas of the workspace. In some embodiments, user adjustments are sent from the user interface to the robotic device to implement the changes. In some embodiments, once a boundary line is selected, a user may be provided with various options, such as, but not limited to, deleting, trimming, rotating, elongating, redrawing, moving in a left direction, moving in a right direction, moving in an upward direction, moving in a downward direction, etc. In some embodiments, a user may be given the option to redraw a boundary line using a cursor, pointer, stylus, mouse, the user's finger, a button or buttons, or other input devices. Even in cases where an accurate map of an environment is created, a user may prefer to adjust the map boundaries to keep the robotic device from entering some areas. In some embodiments, the robotic device may have a plurality of tools that can be used concurrently or independently. In some embodiments, the robotic device may also have various settings, such as a speed settings, movement pattern settings, working frequency settings, etc. In some embodiments, a user is enabled to adjust all of these settings through the user interface. In some embodiments, a user may select with a cursor, pointer, stylus, mouse, the user's finger, a button or buttons, a keyboard, or other input devices any portion of the workspace and select one or more settings to be applied to the area. In some embodiments, a user selects the area of the workspace map in which to designate robotic device operation settings. A user may select any size area; the area selected could be comprised of a small portion of the workspace or could encompass the entire workspace. A user may then select desired settings for the selected area. The particular functions and settings available may be dependent on the capabilities of the particular robotic device. In some embodiments, a real-time robotic device manager may be provided on the user interface to allow a user to instruct the real-time operation of the robotic device regardless of its location within the two-dimensional map. In some embodiments, instructions may include any of turning on or off a tool, turning on or off an automatic shutoff timer, increasing speed, decreasing speed, driving to a user-identified location, turning in a left or right direction, driving forward, driving backward, stopping movement, commencing one or a series of movement patterns, or any other preprogrammed action.

Examples of scheduling methods for robotic devices are described in U.S. patent application Ser. Nos. 16/051,328 and 15/449,660, the entire contents of which are hereby incorporated by reference. For instance, some embodiments provide a schedule development method for a robotic device that automatically devises a work schedule based on historical data. Some embodiments record user inputs indicating days and times to start work. Some embodiments develop a work schedule for future work based on the recorded inputs. Some embodiments include a method for setting a work schedule for a robotic device including: monitoring use times of a robotic device over a preset period of time; storing the times and dates the robotic device was turned on in a database; developing a suggested work schedule based on the stored data; and proposing the suggested work schedule to users through an input/output device. Some embodiments provide a method including: monitoring use times of a robotic device over a preset period of time; storing the times and dates the robotic device was turned on in a database; devising a suggested work schedule from the stored data using a machine learning technique; proposing the suggested work schedule to users through an input/output device; accepting user adjustments to the suggested work schedule through the input/output device; and adding the user adjustment data to the database for use in devising future work schedules. In some embodiments, the input/output device may be wireless and may send and receive signals to and from remote devices, such as, for example, remote controls and smartphones. In some embodiments, inputs from a user and outputs from the robotic device may be provided through a software application installed on an internet-connected device, such as a smartphone, a computer, or a tablet.

In some embodiments, the robotic device autonomously parks in a parking or storage area until it is requested for a particular function at a particular time and location, at which point the robotic device autonomously navigates to the particular location at the particular time, just as described in U.S. patent application Ser. No. 16/230,805, the entire contents of which is hereby incorporated by reference. In some embodiments, a user requests a tennis playing robotic device using the application of the communication device, as described in U.S. patent application Ser. No. 16/230,805, the entire contents of which is hereby incorporated by reference.

In some embodiments, a profile of one or more users is stored within a memory of the robotic device. In some embodiments, the processor of the robotic device loads settings (e.g., difficulty level, maximum tennis ball speed, tennis ball launching speed, etc.) and history (e.g., different preprogrammed routines completed, number of playing hours, etc.) of one of the one or more users when the respective profile is selected using an interface of the robotic device or an application of a communication device paired with the robotic device.

In some embodiments, the processor of the robotic device uses machine learning to determine the optimal playing or training settings for a particular user. In some embodiments, the processor of the robotic device stores performance statistics recorded for both the robotic device and the particular user during each playing or training session with the particular user, including, for example, tennis ball speed, number of balls that are hit outside the court, number of balls hit within the court, number of balls returned, locations of where balls hit the court, number of successful serves, etc. In some embodiments, the processor of the robotic devise uses a Markov Decision Process (MDP) including states, actions, and rewards, to determine optimal settings of the robotic device. In a MDP, the robotic device takes an action to transition from one state to another and receives a reward after the transition based on the outcome of the action. In some embodiments, the processor of the robotic device chooses the settings that maximizes the total reward received. In some embodiments, optimal settings chosen result in the best performance statistics of the robotic device. In some embodiments, optimal settings result in the worst performance statistics of the particular user, as those are the areas of the game the particular user performs the most poorly at and needs to improve in. In some embodiments, the optimal settings chosen result in the best performance statistics of the robotic device and the worst performance statistics of the particular user. Examples of reinforcement learning methods, such as MDP, that may be applied herein are described in U.S. patent application Ser. Nos. 14/859,748, 16/230,805, 16/041,286, and 16/198,393, the entire contents of which are hereby incorporated by reference.

In some embodiments, the chassis of the robotic device is a customizable versatile robotic device chassis, such as the versatile robotic device chassis described in U.S. patent application Ser. No. 16/230,805, the entire contents of which is hereby incorporated by reference. In some embodiments, the versatile robotic chassis is customized to provide the tennis playing capabilities described herein. In some embodiments, the versatile robotic chassis is customized to provide capabilities for other sports, such as basketball, hockey, soccer, etc. In some embodiments, the versatile robotic chassis includes different attachments for different sports that can be switched out with one another depending on the desired function of the robotic device.

In some embodiments, two or more tennis playing robotic devices collaborate. For example, two tennis playing robotic devices collaborate to play a doubles match against two users. Examples of methods for collaboration of robotic devices are described in U.S. patent application Ser. Nos. 16/130,880, 15/981,643, 15/986,670, 15/048,827, and 16/185,000 the entire contents of which are hereby incorporated by reference. For example, in some embodiments, some robotic devices are able to give commands to or can collaborate with other robotic devices on a given project in order to achieve the goal of that project. For example, a command robot such as an Artificial Intelligence (AI) robotic device may be able to give commands to a laborer robotic device, such as a first mobile robotic device ordering a second mobile robotic device to complete a task. As another example, if there are multiple robotic devices in the same area, those robotic devices may share the burden of completing a work task in order to complete the task in a more quick and efficient manner. In some embodiments, over time, as the robotic devices interact with each other, they will come to rely on each other. For example, Robot 1 may be a voice activated AI robotic device that can give commands to other robotic devices. If a user tells Robot 1 to execute a particular task, Robot 1 will search for a robot that can execute the task, referred to as Robot 2. Robot 1 may connect with Robot 2 and they may share their information and authenticate each other. Robot 1 may order Robot 2 to execute the task provided by the user. Over time, as Robot 1 and Robot 2 continue to interact, Robot 1 will know what functions Robot 2 conducts. Thus, after repeated interactions of this nature, if a user states a more nonspecific command related to the functions of Robot 2, Robot 1 knows it can rely on Robot 2 to conduct such action even though the user did not specify which robotic device they wished to execute the command. In some embodiments, robotic devices do not need to be previously acquainted with each other, previously paired, or introduced by a user in order to interact with each other for a first time. So long as the robotic devices are able to connect, interact, and share information with each other, this will suffice. In some embodiments, the robotic devices will have the ability to scan the environment in order to search for other robotic devices in the area including newly introduced robotic devices that have not been acquainted with each other for a first time. For example, upon receiving a voice command to execute an action for a first time, the AI device may scan the home and find a device that has that functionality. So long as the two devices are able to exchange information with each other they will be able to rely on each other and create a working relationship. In some embodiments, robotic devices are able to form connections with robotic devices not introduced to them by a user. In some embodiments, robotic devices do not need to have similar functions, the functionalities of the different robotic devices can be completely separate and distinct from each other. In some embodiments, when robotic devices interact with each other, they will store the information regarding the abilities of the other robotic device in order to understand how to interact with that robotic device in the future. In some embodiments, different types of robotic devices may interact with each other such as a robotic device that issues commands and a robotic device that enacts those commands.

Some embodiments include a method for managing one or more robotic devices using a control system including: transmitting information using a wireless communication channel to the one or more robotic devices by the control system, receiving the information using a wireless communication channel by the one or more robotic devices, executing one or more actions by the one or more robotic devices based on the information received, transmitting information using a wireless communication channel to the control system by the one or more robotic devices, receiving the information using a wireless communication channel by the control system. In some embodiments, the information transmitted from the control system to the one or more robotic devices may be instructions and/or commands and/or relevant information that may be used by the one or more robotic devices to, for example, make decisions and/or optimize individual processes. In some embodiments, the information transmitted from the one or more robotic device to the control system may be external observations of the environment, status updates, GPS coordinates, scheduling information, mapping information, navigation information, task information, status information, internal or external observations, or any other type of information that may be useful to the control system and/or the one or more robotic devices. that may be used to, for example, make decisions, modify commands/instructions/information sent to other robotic devices, optimize processes and optimize collaboration among the one or more robotic devices. In some embodiments, the control system communicates with one or more robotic devices within an environment to organize and improve the efficiency of the execution of one or more tasks by the one or more robotic devices within the environment. For example, two robotic platforms may transmit or receive information from control system using a wireless communication channel. The robotic platforms may transmit their status including information such as battery level, GPS coordinates, availability, etc., to the control system. Based on the received information, the control system may transmit one or more commands to the robotic platforms. Commands may include, but are not limited to, navigating to a particular location, recharging the battery, travelling at a specific speed, avoiding a particular area, avoiding particular surface types, conducting particular tasks at particular times, avoiding operation at particular times, playing music, carrying an item, navigating to a docking station, stopping a work function, conducting an internal diagnostic check, etc. In embodiments, the control system may transmit scheduling information to one or more robotic devices that may include dates, times, and locations associated with particular tasks assigned to the one or more robotic devices.

FIG. 1 illustrates an example of a tennis playing robotic device 100 with arms 101, tennis racket 102, tennis ball launcher 103, sensors 104 and wheels 105 according to some embodiments. Arms 101 include three links, a first link pivotally coupled to robotic device 100, a second link pivotally coupled to the first link and a third link pivotally coupled to the second link. In some instances, the first, second, and third links have a similar range of motion to a human shoulder, elbow, and wrist, respectively. In some cases, the links of arms 101 can retract and expand.

FIG. 2 illustrates an example of a tennis playing robotic device 200 with arm 201, tennis racket 202, tennis ball launcher 203, sensors 204 and wheels 205 according to some embodiments. Arm 201 includes two links, a first link pivotally coupled to robotic device 200, a second link pivotally coupled to the first link. In some instances, the second link has 360-degree range of motion in all three planes. In some cases, the links of arm 201 can retract and expand.

FIG. 3 illustrates a top view of an example of a tennis playing robotic device 300 with a processor 301, memory 302, sensors 303, actuator 304, battery 305 and arms 306. In some embodiments, the robotic device 300 may include the features of a robotic device described herein. In some embodiments, program code stored in the memory 302 and executed by the processor 301 may effectuate the operations described herein. Some embodiments additionally include communication device 307 (e.g., mobile device, laptop, remote control, specialized computer, desktop computer, tablet, etc.) having a touchscreen 308 and that executes an application by which the user interfaces with robotic device 300. In some embodiments, processor 301 and memory 302 implement some of the functionality described herein. In some embodiments, a user may provide instructions to robotic device 300 to perform certain tasks or to use certain settings at certain times or in certain areas of the environment using the application of communication device 307 wirelessly paired with robotic device 300.

The functionality provided by each of the components may be provided by software or hardware modules that are differently organized than is presently depicted. For example, such software or hardware may be intermingled, conjoined, replicated, broken up, distributed (e.g. within a data center or geographically), or otherwise differently organized. The functionality described herein may be provided by one or more processors of one or more computers executing code stored on a tangible, non-transitory, machine readable medium. In some cases, notwithstanding use of the singular term “medium,” the instructions may be distributed on different storage devices associated with different computing devices, for instance, with each computing device having a different subset of the instructions, an implementation consistent with usage of the singular term “medium” herein. In some cases, third party content delivery networks may host some or all of the information conveyed over networks, in which case, to the extent information (e.g., content) is said to be supplied or otherwise provided, the information may be provided by sending instructions to retrieve that information from a content delivery network.

The reader should appreciate that the present application describes several independently useful techniques. Rather than separating those techniques into multiple isolated patent applications, the applicant has grouped these techniques into a single document because their related subject matter lends itself to economies in the application process. But the distinct advantages and aspects of such techniques should not be conflated. In some cases, embodiments address all of the deficiencies noted herein, but it should be understood that the techniques are independently useful, and some embodiments address only a subset of such problems or offer other, unmentioned benefits that will be apparent to those of skill in the art reviewing the present disclosure. Due to costs constraints, some techniques disclosed herein may not be presently claimed and may be claimed in later filings, such as continuation applications or by amending the present claims. Similarly, due to space constraints, neither the Abstract nor the Summary of the Invention sections of the present document should be taken as containing a comprehensive listing of all such techniques or all aspects of such techniques.

It should be understood that the description and the drawings are not intended to limit the present techniques to the particular form disclosed, but to the contrary, the intention is to cover all modifications, equivalents, and alternatives falling within the spirit and scope of the present techniques as defined by the appended claims. Further modifications and alternative embodiments of various aspects of the techniques will be apparent to those skilled in the art in view of this description. Accordingly, this description and the drawings are to be construed as illustrative only and are for the purpose of teaching those skilled in the art the general manner of carrying out the present techniques. It is to be understood that the forms of the present techniques shown and described herein are to be taken as examples of embodiments. Elements and materials may be substituted for those illustrated and described herein, parts and processes may be reversed or omitted, and certain features of the present techniques may be utilized independently, all as would be apparent to one skilled in the art after having the benefit of this description of the present techniques. Changes may be made in the elements described herein without departing from the spirit and scope of the present techniques as described in the following claims. Headings used herein are for organizational purposes only and are not meant to be used to limit the scope of the description.

As used throughout this application, the word “may” is used in a permissive sense (i.e., meaning having the potential to), rather than the mandatory sense (i.e., meaning must). The words “include”, “including”, and “includes” and the like mean including, but not limited to. As used throughout this application, the singular forms “a,” “an,” and “the” include plural referents unless the content explicitly indicates otherwise. Thus, for example, reference to “an element” or “a element” includes a combination of two or more elements, notwithstanding use of other terms and phrases for one or more elements, such as “one or more.” The term “or” is, unless indicated otherwise, non-exclusive, i.e., encompassing both “and” and “or.” Terms describing conditional relationships, e.g., “in response to X, Y,” “upon X, Y,”, “if X, Y,” “when X, Y,” and the like, encompass causal relationships in which the antecedent is a necessary causal condition, the antecedent is a sufficient causal condition, or the antecedent is a contributory causal condition of the consequent, e.g., “state X occurs upon condition Y obtaining” is generic to “X occurs solely upon Y” and “X occurs upon Y and Z.” Such conditional relationships are not limited to consequences that instantly follow the antecedent obtaining, as some consequences may be delayed, and in conditional statements, antecedents are connected to their consequents, e.g., the antecedent is relevant to the likelihood of the consequent occurring. Statements in which a plurality of attributes or functions are mapped to a plurality of objects (e.g., one or more processors performing steps A, B, C, and D) encompasses both all such attributes or functions being mapped to all such objects and subsets of the attributes or functions being mapped to subsets of the attributes or functions (e.g., both all processors each performing steps A-D, and a case in which processor 1 performs step A, processor 2 performs step B and part of step C, and processor 3 performs part of step C and step D), unless otherwise indicated. Further, unless otherwise indicated, statements that one value or action is “based on” another condition or value encompass both instances in which the condition or value is the sole factor and instances in which the condition or value is one factor among a plurality of factors. Unless otherwise indicated, statements that “each” instance of some collection have some property should not be read to exclude cases where some otherwise identical or similar members of a larger collection do not have the property, i.e., each does not necessarily mean each and every. Limitations as to sequence of recited steps should not be read into the claims unless explicitly specified, e.g., with explicit language like “after performing X, performing Y,” in contrast to statements that might be improperly argued to imply sequence limitations, like “performing X on items, performing Y on the X'ed items,” used for purposes of making claims more readable rather than specifying sequence. Statements referring to “at least Z of A, B, and C,” and the like (e.g., “at least Z of A, B, or C”), refer to at least Z of the listed categories (A, B, and C) and do not require at least Z units in each category. Unless specifically stated otherwise, as apparent from the discussion, it is appreciated that throughout this specification discussions utilizing terms such as “processing,” “computing,” “calculating,” “determining” or the like refer to actions or processes of a specific apparatus, such as a special purpose computer or a similar special purpose electronic processing/computing device. Features described with reference to geometric constructs, like “parallel,” “perpendicular/orthogonal,” “square”, “cylindrical,” and the like, should be construed as encompassing items that substantially embody the properties of the geometric construct, e.g., reference to “parallel” surfaces encompasses substantially parallel surfaces. The permitted range of deviation from Platonic ideals of these geometric constructs is to be determined with reference to ranges in the specification, and where such ranges are not stated, with reference to industry norms in the field of use, and where such ranges are not defined, with reference to industry norms in the field of manufacturing of the designated feature, and where such ranges are not defined, features substantially embodying a geometric construct should be construed to include those features within 15% of the defining attributes of that geometric construct. The terms “first”, “second”, “third,” “given” and so on, if used in the claims, are used to distinguish or otherwise identify, and not to show a sequential or numerical limitation. 

The invention claimed is:
 1. A system for robotic collaboration, comprising: a first robotic device, comprising: a chassis; a set of wheels; one or more motors to drive the wheels; a plurality of sensors; and a tangible, non-transitory, machine readable medium storing instructions that when executed by a processor of the first robotic device effectuates first operations comprising: receiving, with the processor of the first robotic device, first information from a processor of a second robotic device; actuating, with the processor of the first robotic device, the first robotic device to execute a first action based on the first information; and transmitting, with the processor of the first robotic device, second information to the processor of the second robotic device; and the second robotic device, comprising: a chassis; a set of wheels; one or more motors to drive the wheels; a plurality of sensors; and a tangible, non-transitory, machine readable medium storing instructions that when executed by the processor of the second robotic device effectuates second operations comprising: receiving, with the processor of the second robotic device, the second information transmitted from the processor of the first robotic device; actuating, with the processor of the second robotic device, the second robotic device to execute a second action based on the second information; and transmitting, with the processor of the first robotic device, third information to the processor of the first robotic device; and an application of a communication device paired with at least one of the first robotic device and the second robotic device configured to: receive an input designating at least one of: a hitting speed of a tennis ball, a hitting direction of a tennis ball, a type of tennis match, a serving speed of a tennis ball, playing difficulty level of the first robotic device or second robotic device, a unique tag of a subarea in a map of an environment, a task schedule of the first robotic or second robotic device, a driving speed, a playing position of the first robotic device or second robotic device, a subarea in which the first robotic device or second robotic device is to execute a task, an instruction to execute a particular preprogrammed playing routine, a selection of a particular user profile, an instruction to drive to a user-identified location, an instruction to turn in a left or right direction, an instruction to drive forwards or backwards, an instruction to stop moving, and an instruction to execute one or more movement patterns.
 2. The system of claim 1, wherein: the first and the third information comprises at least one of imaging data and motion sensor data corresponding with a playing opponent of the second robotic device observed by an image sensor and motion sensor, respectively; and the second information comprises at least one of imaging data and motion sensor data corresponding with a playing opponent of the first robotic device observed by an image sensor and motion sensor, respectively.
 3. The system of claim 1, wherein the first, second and third information further comprises at least one of imaging data and motion sensor data corresponding with a tennis ball observed by an image sensor and motion sensor, respectively.
 4. The system of claim 1, wherein: each robotic device further comprises one or more tennis rackets, each of the one or more tennis rackets being coupled to a terminal end of a corresponding arm of each robotic device; and the first action and the second action comprise hitting a tennis ball with the one or more tennis rackets of the first robotic device and the second robotic device, respectively.
 5. The system of claim 1, wherein the processor of at least one of the first robotic device and second robotic device determines settings comprising a hitting speed of a tennis ball and a hitting direction of the tennis ball based on at least one of a preprogrammed playing routine and a playing difficulty level of the corresponding robotic device.
 6. The system of claim 1, wherein at least one of the robotic device and second robotic device further comprises an acoustic sensor for receiving verbal commands.
 7. The system of claim 1, wherein the processor of at least one of the first robotic device and second robotic device actuates movement of the corresponding robotic device based on at least one of: a position of the tennis ball, a position of a playing opponent, and a target location on an opposing end of a tennis court.
 8. The system of claim 1, wherein the processor of at least one of the first robotic device and second robotic device autonomously adjusts settings of the corresponding robotic device based on optimal settings learned for a particular user using machine learning.
 9. The system of claim 1, wherein the processor of at least one of the first robotic device and second robotic device autonomously devises a task schedule based on previous observations.
 10. The system of claim 1, wherein at least one of the first operations and second operations comprise: generating a map an environment by combining sensor data at overlapping points; localizing the corresponding robotic device based on sensor data; and generating a movement path of the corresponding robotic device based on at least the map.
 11. A method for robotic collaboration, comprising: receiving, with a processor of a first robotic device, first information from a processor of a second robotic device; actuating, with the processor of the first robotic device, the first robotic device to execute a first action based on the first information; transmitting, with the processor of the first robotic device, second information to the processor of the second robotic device; receiving, with the processor of the second robotic device, the second information transmitted from the processor of the first robotic device; actuating, with the processor of the second robotic device, the second robotic device to execute a second action based on the second information; transmitting, with the processor of the first robotic device, third information to the processor of the first robotic device; and receiving, with an application of a communication device paired with at least one of the first robotic device and the second robotic device, an input designating at least one of: a hitting speed of a tennis ball, a hitting direction of a tennis ball, a type of tennis match, a serving speed of a tennis ball, playing difficulty level of the first robotic device or second robotic device, a unique tag of a subarea in a map of an environment, a task schedule of the first robotic or second robotic device, a driving speed, a playing position of the first robotic device or second robotic device, a subarea in which the first robotic device or second robotic device is to execute a task, an instruction to execute a particular preprogrammed playing routine, a selection of a particular user profile, an instruction to drive to a user-identified location, an instruction to turn in a left or right direction, an instruction to drive forwards or backwards, an instruction to stop moving, and an instruction to execute one or more movement patterns.
 12. The method of claim 11, wherein: the first and the third information comprises at least one of imaging data and motion sensor data corresponding with a playing opponent of the second robotic device observed by an image sensor and motion sensor, respectively; and the second information comprises at least one of imaging data and motion sensor data corresponding with a playing opponent of the first robotic device observed by an image sensor and motion sensor, respectively.
 13. The method of claim 11, wherein the first, second and third information further comprises at least one of imaging data and motion sensor data corresponding with a tennis ball observed by an image sensor and motion sensor, respectively.
 14. The method of claim 11, wherein: each robotic device further comprises one or more tennis rackets, each of the one or more tennis rackets being coupled to a terminal end of a corresponding arm of each robotic device; and the first action and the second action comprise hitting a tennis ball with the one or more tennis rackets of the first robotic device and the second robotic device, respectively.
 15. The method of claim 11, wherein at least one of the robotic device and second robotic device further comprises an acoustic sensor for receiving verbal commands.
 16. The method of claim 11, wherein the processor of at least one of the first robotic device and second robotic device actuates movement of the corresponding robotic device based on at least one of: a position of the tennis ball, a position of a playing opponent, and a target location on an opposing end of a tennis court.
 17. The method of claim 11, wherein the processor of at least one of the first robotic device and second robotic device autonomously devises a task schedule based on previous observations.
 18. The method of claim 11, further comprising: generating a map an environment by combining sensor data at overlapping points; localizing the corresponding robotic device based on sensor data; and generating a movement path of the corresponding robotic device based on at least the map.
 19. The method of claim 11, further comprising: adjusting, with the processor of at least one of the first robotic device and second robotic device, settings of the corresponding robotic device based on optimal settings learned for a particular user using machine learning. 